home *** CD-ROM | disk | FTP | other *** search
/ Cream of the Crop 26 / Cream of the Crop 26.iso / os2 / octa209b.zip / octave-2.09 / NEWS < prev    next >
Text File  |  1997-07-10  |  23KB  |  551 lines

  1. Summary of changes for version 2.0.9:
  2. ------------------------------------
  3.  
  4.   This is a bug-fixing release, but there is one new user-visible
  5.   feature:
  6.  
  7.   * It is now possible to specify a label for lines in the plot key
  8.     when using the plot function.  For example,
  9.  
  10.       plot (x, y, "-*;sin(x);")
  11.  
  12.     plots y vs. x using the linespoints style and sets the title of
  13.     the line in the key to be `sin(x)'
  14.  
  15. Summary of changes for version 2.0.8:
  16. ------------------------------------
  17.  
  18.   This is a bug-fixing release.  There are only a few new user-visible
  19.   features.
  20.  
  21.   * If the argument to eig() is symmetric, Octave uses the specialized
  22.     Lapack subroutine for symmetric matrices for a significant
  23.     increase in performance.
  24.  
  25.   * It is now possible to use the mkoctfile script to create .oct
  26.     files from multiple source and object files.
  27.  
  28. Summary of changes for version 2.0.7:
  29. ------------------------------------
  30.  
  31.   This is a bug-fixing release.  There are no new user-visible features.
  32.  
  33. Summary of changes for version 2.0.6:
  34. ------------------------------------
  35.  
  36.   This is primarily a bug-fixing release.  There are only a few new
  37.   user-visilbe features.
  38.  
  39.   * The new built-in variable default_eval_print_flag controls whether
  40.     Octave prints the results of commands executed by eval() that do
  41.     not end with semicolons.  The default is 1.
  42.  
  43.   * The new built-in constant OCTAVE_HOME specifies the top-level
  44.     directory where Octave is installed.
  45.  
  46.   * Octave no longer includes functions to work with NPSOL or QPSOL,
  47.     because they are not free software.
  48.  
  49. Summary of changes for version 2.0.5:
  50. ------------------------------------
  51.  
  52.   * A `switch' statement is now available.  See the Statements chapter
  53.     in the manual for details.
  54.  
  55.   * Commands like ls, save, and cd may now also be used as formal
  56.     parameters for functions.
  57.  
  58.   * More tests.
  59.  
  60. Summary of changes for version 2.0.4:
  61. ------------------------------------
  62.  
  63.   * It is now possible to use commands like ls, save, and cd as simple
  64.     variable names.  They still cannot be used as formal parameters
  65.     for functions, or as the names of structure variables.  Failed
  66.     assignments leave them undefined (you can recover the orginal
  67.     function definition using clear).
  68.  
  69.   * Is is now possible to invoke commands like ls, save, and cd as
  70.     normal functions (for example, load ("foo", "x", "y", "z")).
  71.  
  72. Summary of changes for version 2.0.3:
  73. ------------------------------------
  74.  
  75.   * The manual has been completely revised and now corresponds much
  76.     more closely to the features of the current version.
  77.  
  78.   * The return value for assignment expressions is now the RHS since
  79.     that is more consistent with the way other programming languages
  80.     work.  However, Octave still prints the entire LHS value so that
  81.  
  82.       x = zeros (1, 2);
  83.       x(2) = 1
  84.  
  85.     still prints
  86.  
  87.       x =
  88.  
  89.         0  1
  90.  
  91.     but an assignment like
  92.  
  93.       z = x(2) = 1
  94.  
  95.     sets z to 1 (not [ 0, 1 ] as in previous versions of Octave).
  96.  
  97.   * It is now much easier to make binary distributions.  See the
  98.     Binary Distributions section of the manual for more details.
  99.  
  100. Summary of changes for version 2.0.2:
  101. ------------------------------------
  102.  
  103.   * Octave now stops executing commands from a script file if an error
  104.     is encountered.
  105.  
  106.   * The return, and break commands now cause Octave to quit executing
  107.     commands from script files.  When used in invalid contexts, the
  108.     break, continue, and return commands are now simply ignored
  109.     instead of producing parse errors.
  110.  
  111.   * size ("") is now [0, 0].
  112.  
  113.   * New functions:
  114.  
  115.       sleep   -- pause execution for a specified number of seconds
  116.       usleep  -- pause execution for a specified number of microseconds
  117.  
  118. Summary of changes for version 2.0:
  119. ----------------------------------
  120.  
  121.   * The set and show commands for setting and displaying gnuplot
  122.     parameters have been replaced by gset and gshow.  This change will
  123.     probably break lots of things, but it is necessary to allow for
  124.     compatibility with the Matlab graphics and GUI commands in a
  125.     future version of Octave.  (For now, the old set and show commands
  126.     do work, but they print an annoying warning message to try to get
  127.     people to switch to using gset.)
  128.  
  129.   * Octave has been mostly ported to Windows NT and Windows 95 using
  130.     the beta 17 release of the Cygnus GNU-WIN32 tools.  Not everything
  131.     works, but it is usable.  See the file README.WINDOWS for more
  132.     information.
  133.  
  134.   * Dynamic linking works on more systems using dlopen() and friends
  135.     (most modern Unix systems) or shl_load() and friends (HP/UX
  136.     systems).  A simple example is provided in examples/hello.cc.
  137.     For this feature to work, you must configure Octave with
  138.     --enable-shared.  You may also need to have a shared-library
  139.     version of libg++ and libstdc++.
  140.  
  141.   * New data types can be added to Octave by writing a C++ class.  On
  142.     systems that support dynamic linking, new data types can be added
  143.     to an already running Octave binary.  A simple example appears in
  144.     the file examples/make_int.cc.  Other examples are the standard
  145.     Octave data types defined in the files src/ov*.{h,cc} and
  146.     src/op-*.cc.
  147.  
  148.   * The configure option --enable-bounds-check turns on bounds
  149.     checking on element references for Octave's internal array and
  150.     matrix classes.  It's enabled by default.  To disable this
  151.     feature, configure Octave with --disable-bounds-check.
  152.  
  153.   * The C-style I/O functions (fopen, fprintf, etc.) have been
  154.     rewritten to be more compatible with Matlab.  The fputs function
  155.     has also been added.  Usage of the *printf functions that was
  156.     allowed in previous versions of Octave should still work.
  157.     However, there is no way to make the new versions of the *scanf
  158.     functions compatible with Matlab *and* previous versions of
  159.     Octave.  An optional argument to the *scanf functions is now
  160.     available to make them behave in a way that is compatible with
  161.     previous versions of Octave.
  162.  
  163.   * Octave can now read files that contain columns of numbers only,
  164.     with no header information.  The name of the loaded variable is
  165.     constructed from the file name.  Each line in the file must have
  166.     the same number of elements.
  167.  
  168.   * The interface to the pager has changed.  The new built-in variable
  169.     `page_output_immediately' controls when Octave sends output to the
  170.     pager.  If it is nonzero, Octave sends output to the pager as soon
  171.     as it is available.  Otherwise, Octave buffers its output and
  172.     waits until just before the prompt is printed to flush it to the
  173.     pager.
  174.  
  175.   * Expressions of the form
  176.  
  177.       A(i,j) = x
  178.  
  179.     where X is a scalar and the indices i and j define a matrix of
  180.     elements now work as you would expect rather than giving an error.
  181.     I am told that this is how Matlab 5.0 will behave when it is
  182.     released.
  183.  
  184.   * Indexing of character strings now works.
  185.  
  186.   * The echo command has been implemented.
  187.  
  188.   * The document command is now a regular function.
  189.  
  190.   * New method for handling errors:
  191.  
  192.       try
  193.         BODY
  194.       catch
  195.         CLEANUP
  196.       end_try_catch
  197.  
  198.     Where BODY and CLEANUP are both optional and may contain any
  199.     Octave expressions or commands.  The statements in CLEANUP are
  200.     only executed if an error occurs in BODY.
  201.  
  202.     No warnings or error messages are printed while BODY is
  203.     executing.  If an error does occur during the execution of BODY,
  204.     CLEANUP can access the text of the message that would have been
  205.     printed in the builtin constant __error_text__.  This is the same
  206.     as eval (TRY, CATCH) (which may now also use __error_text__) but
  207.     it is more efficient since the commands do not need to be parsed
  208.     each time the TRY and CATCH statements are evaluated.
  209.  
  210.   * Octave no longer parses the help command by grabbing everything
  211.     after the keyword `help' until a newline character is read.  To
  212.     get help for `;' or `,', now, you need to use the command
  213.     `help semicolon' or `help comma'.
  214.  
  215.   * Octave's parser now does some simple constant folding.  This means
  216.     that expressions like 3*i are now evaluated only once, when a
  217.     function is compiled, and the right hand side of expressions like
  218.     a = [1,2;3,4] are treated as true matrix constants rather than
  219.     lists of elements which must be evaluated each time they are
  220.     needed.
  221.  
  222.   * Built-in variables that can take values of "true" and "false" can
  223.     now also be set to any nonzero scalar value to indicate "true",
  224.     and 0 to indicate "false".
  225.  
  226.   * New built-in variables `history_file', `history_size', and
  227.     `saving_history'.
  228.  
  229.   * New built-in variable `string_fill_char' specifies the character
  230.     to fill with when creating arrays of strings.
  231.  
  232.   * If the new built-in variable `gnuplot_has_frames' is nonzero,
  233.     Octave assumes that your copy of gnuplot includes support for
  234.     multiple plot windows when using X11.
  235.  
  236.     If the new built-in variable `gnuplot_has_multiplot' is nonzero,
  237.     Octave assumes that your copy of gnuplot has the multiplot support
  238.     that is included in recent 3.6beta releases.
  239.  
  240.     The initial values of these variables are determined by configure,
  241.     but can be changed in your startup script or at the command line
  242.     in case configure got it wrong, or if you upgrade your gnuplot
  243.     installation.
  244.  
  245.   * The new plot function `figure' allows multiple plot windows when
  246.     using newer versions of gnuplot with X11.
  247.  
  248.   * Octave now notices when the plotter has exited unexpectedly.
  249.  
  250.   * New built-in variable `warn_missing_semicolon'.  If nonzero, Octave
  251.     will warn when statements in function definitions don't end in
  252.     semicolons.  The default value is 0.
  253.  
  254.   * Octave now attempts to continue after floating point exceptions
  255.     or out-of-memory errors.
  256.  
  257.   * If Octave crashes, it now attempts to save all user-defined
  258.     variables in a file named `octave-core' in the current directory
  259.     before exiting.
  260.  
  261.   * It is now possible to get the values of individual option settings
  262.     for the dassl, fsolve, lsode, npsol, qpsol, and quad functions
  263.     using commands like
  264.  
  265.       dassl_reltol = dassl_options ("relative tolerance");
  266.  
  267.   * The svd() function no longer computes the left and right singular
  268.     matrices unnecessarily.  This can significantly improve
  269.     performance for large matrices if you are just looking for the  
  270.     singular values.
  271.  
  272.   * The filter() function is now a built-in function.
  273.  
  274.   * New function randn() returns a pseudo-random number from a normal
  275.     distribution.  The rand() and randn() functions have separate
  276.     seeds and generators.
  277.  
  278.   * Octave's command-line arguments are now available in the built-in
  279.     variable `argv'.  The program name is also available in the
  280.     variables `program_invocation_name' and `program_name'.  If
  281.     executing a script from the command line (e.g., octave foo.m) or
  282.     using the `#! /bin/octave' hack, the program name is set to the
  283.     name of the script.
  284.  
  285.   * New built-in variable `completion_append_char' used as the
  286.     character to append to successful command-line completion
  287.     attempts.  The default is " " (a single space).
  288.  
  289.   * Octave now uses a modified copy of the readline library from
  290.     version 1.14.5 of GNU bash.
  291.  
  292.   * In prompt strings, `\H' expands to the whole host name.
  293.  
  294.   * New built-in variable `beep_on_error'.  If nonzero, Octave will try
  295.     to ring your terminal's bell before printing an error message.
  296.     The default value is 0.
  297.  
  298.   * For functions defined from files, the type command now prints the
  299.     text of the file.  You can still get the text reconstructed from
  300.     the parse tree by using the new option -t (-transformed).
  301.  
  302.   * New command-line argument --traditional sets the following
  303.     preference variables for compatibility with Matlab:
  304.  
  305.       PS1                           = ">> "
  306.       PS2                           = ""
  307.       beep_on_error                 = 1
  308.       default_save_format           = "mat-binary"
  309.       define_all_return_values      = 1
  310.       do_fortran_indexing           = 1
  311.       empty_list_elements_ok        = 1
  312.       implicit_str_to_num_ok        = 1
  313.       ok_to_lose_imaginary_part     = 1
  314.       page_screen_output            = 0
  315.       prefer_column_vectors         = 0
  316.       prefer_zero_one_indexing      = 1
  317.       print_empty_dimensions        = 0
  318.       treat_neg_dim_as_zero         = 1
  319.       warn_function_name_clash      = 0
  320.       whitespace_in_literal_matrix  = "traditional"
  321.  
  322.   * New functions:
  323.  
  324.       readdir  -- returns names of files in directory as array of strings
  325.       mkdir    -- create a directory
  326.       rmdir    -- remove a directory
  327.       rename   -- rename a file
  328.       unlink   -- delete a file
  329.       umask    -- set permission mask for file creation
  330.       stat     -- get information about a file
  331.       lstat    -- get information about a symbolic link
  332.       glob     -- perform filename globbing
  333.       fnmatch  -- match strings with filename globbing patterns
  334.       more     -- turn the pager on or off
  335.       gammaln  -- alias for lgamma
  336.  
  337.   * New audio functions from Andreas Weingessel
  338.     <Andreas.Weingessel@ci.tuwien.ac.at>.
  339.  
  340.       lin2mu     -- linear to mu-law encoding
  341.       loadaudio  -- load an audio file to a vector
  342.       mu2lin     -- mu-law to linear encoding
  343.       playaudio  -- play an audio file
  344.       record     -- record sound and store in vector
  345.       saveaudio  -- save a vector as an audio file
  346.       setaudio   -- executes mixer shell command
  347.  
  348.   * New plotting functions from Vinayak Dutt.  Ones dealing with
  349.     multiple plots on one page require features from gnuplot 3.6beta
  350.     (or later).
  351.  
  352.       bottom_title  -- put title at the bottom of the plot
  353.       mplot         -- multiplot version of plot
  354.       multiplot     -- switch multiple-plot mode on or off
  355.       oneplot       -- return to one plot per page
  356.       plot_border   -- put a border around plots
  357.       subplot       -- position multiple plots on a single page
  358.       subwindow     -- set subwindow position for next plot
  359.       top_title     -- put title at the top of the plot
  360.       zlabel        -- put a label on the z-axis
  361.  
  362.   * New string functions
  363.  
  364.       bin2dec  -- convert a string of ones and zeros to an integer
  365.       blanks   -- create a string of blanks
  366.       deblank  -- delete trailing blanks
  367.       dec2bin  -- convert an integer to a string of ones and zeros
  368.       dec2hex  -- convert an integer to a hexadecimal string
  369.       findstr  -- locate occurrences of one string in another
  370.       hex2dec  -- convert a hexadecimal string to an integer
  371.       index    -- return position of first occurrence a string in another
  372.       rindex   -- return position of last occurrence a string in another
  373.       split    -- divide one string into pieces separated by another
  374.       str2mat  -- create a string matrix from a list of strings
  375.       strrep   -- replace substrings in a string
  376.       substr   -- extract a substring
  377.  
  378.     The following functions return a matrix of ones and zeros.
  379.     Elements that are nonzero indicate that the condition was true for
  380.     the corresponding character in the string array.
  381.  
  382.       isalnum   -- letter or a digit
  383.       isalpha   -- letter
  384.       isascii   -- ascii
  385.       iscntrl   -- control character
  386.       isdigit   -- digit
  387.       isgraph   -- printable (but not space character)
  388.       islower   -- lower case
  389.       isprint   -- printable (including space character)
  390.       ispunct   -- punctuation
  391.       isspace   -- whitespace
  392.       isupper   -- upper case
  393.       isxdigit  -- hexadecimal digit
  394.  
  395.     These functions return new strings.
  396.  
  397.       tolower  -- convert to lower case
  398.       toupper  -- convert to upper case
  399.  
  400.   * New function, fgetl.  Both fgetl and fgets accept an optional
  401.     second argument that specifies a maximum number of characters to
  402.     read, and the function fgets is now compatible with Matlab.
  403.  
  404.   * Printing in hexadecimal format now works (format hex).  It is also
  405.     possible to print the internal bit representation of a value
  406.     (format bit).  Note that these formats are only implemented for
  407.     numeric values.
  408.  
  409.   * Additional structure features:
  410.  
  411.     -- Name completion now works for structures.
  412.  
  413.     -- Values and names of structure elements are now printed by
  414.        default.  The new built-in variable `struct_levels_to_print'
  415.        controls the depth of nested structures to print.  The default
  416.        value is 2.
  417.  
  418.     -- New functions:
  419.  
  420.        struct_contains (S, NAME) -- returns 1 if S is a structure with
  421.                                     element NAME; otherwise returns 0.
  422.  
  423.        struct_elements (S)       -- returns the names of all elements
  424.                                     of structure S in an array of strings. 
  425.  
  426.   * New io/subprocess functions:
  427.  
  428.       fputs    -- write a string to a file with no formatting
  429.       popen2   -- start a subprocess with 2-way communication
  430.       mkfifo   -- create a FIFO special file
  431.       popen    -- open a pipe to a subprocess
  432.       pclose   -- close a pipe from a subprocess
  433.       waitpid  -- check the status of or wait for subprocesses
  434.  
  435.   * New time functions:
  436.  
  437.       asctime    -- format time structure according to local format
  438.       ctime      -- equivalent to `asctime (localtime (TMSTRUCT))'
  439.       gmtime     -- return time structure corresponding to UTC
  440.       localtime  -- return time structure corresponding to local time zone
  441.       strftime   -- print given time structure using specified format
  442.       time       -- return current time
  443.  
  444.     The `clock' and `date' functions are now implemented in M-files
  445.     using these basic functions.
  446.  
  447.   * Access to additional Unix system calls:
  448.  
  449.       dup2     -- duplicate a file descriptor
  450.       exec     -- replace current process with a new process
  451.       fcntl    -- control open file descriptors
  452.       fork     -- create a copy of the current process
  453.       getpgrp  -- return the process group id of the current process
  454.       getpid   -- return the process id of the current process
  455.       getppid  -- return the process id of the parent process
  456.       getuid   -- return the real user id of the current process
  457.       getgid   -- return the real group id of the current process
  458.       geteuid  -- return the effective user id of the current process
  459.       getegid  -- return the effective group id of the current process
  460.       pipe     -- create an interprocess channel
  461.  
  462.   * Other new functions:
  463.  
  464.       commutation_matrix  -- compute special matrix form
  465.       duplication_matrix  -- compute special matrix form
  466.       common_size.m       -- bring arguments to a common size
  467.       completion_matches  -- perform command completion on string
  468.       tilde_expand        -- perform tilde expansion on string
  469.  
  470.       meshgrid  -- compatible with Matlab's meshgrid function
  471.       tmpnam    -- replaces octave_tmp_file_name
  472.       atexit    -- register functions to be called when Octave exits
  473.       putenv    -- define an environment variable
  474.       bincoeff  -- compute binomial coefficients
  475.       nextpow2  -- compute the next power of 2 greater than a number
  476.       detrend   -- remove a best fit polynomial from data
  477.       erfinv    -- inverse error function
  478.       shift     -- perform a circular shift on the elements of a matrix
  479.       pow2      -- compute 2 .^ x
  480.       log2      -- compute base 2 logarithms
  481.       diff      -- compute differences of matrix elements
  482.       vech      -- stack columns of a matrix below the diagonal
  483.       vec       -- stack columns of a matrix to form a vector
  484.       xor       -- compute exclusive or
  485.  
  486.   * Functions for getting info from the password database on Unix systems:
  487.  
  488.       getpwent  -- read entry from password-file stream, opening if necessary
  489.       getpwuid  -- search for password entry with matching user ID
  490.       getpwnam  -- search for password entry with matching username
  491.       setpwent  -- rewind the password-file stream
  492.       endpwent  -- close the password-file stream
  493.  
  494.   * Functions for getting info from the group database on Unix systems:
  495.  
  496.       getgrent  -- read entry from group-file stream, opening if necessary
  497.       getgrgid  -- search for group entry with matching group ID
  498.       getgrnam  -- search for group entry with matching group name
  499.       setgrent  -- rewind the pgroup-file stream
  500.       endgrent  -- close the group-file stream
  501.  
  502.   * The New function octave_config_info returns a structure containing
  503.     information about how Octave was configured and compiled.
  504.  
  505.   * New function getrusage returns a structure containing system
  506.     resource usage statistics.  The `cputime' function is now defined
  507.     in an M-file using getrusage.
  508.  
  509.   * The info reader is now a separate binary that runs as a
  510.     subprocess.  You still need the info reader distributed with
  511.     Octave though, because there are some new command-line arguments
  512.     that are not yet available in the public release of Info.
  513.  
  514.   * There is a new built-in variable, INFO_PROGRAM, which is used as
  515.     the name of the info program to run.  Its initial value is
  516.     $OCTAVE_HOME/lib/octave/VERSION/exec/ARCH/info, but that value can
  517.     be overridden by the environment variable OCTAVE_INFO_PROGRAM, or
  518.     the command line argument --info-program NAME, or by setting the
  519.     value of INFO_PROGRAM in a startup script.
  520.  
  521.   * There is a new built-in variable, EXEC_PATH, which is used as
  522.     the list of directories to search when executing subprograms.  Its
  523.     initial value is taken from the environment variable
  524.     OCTAVE_EXEC_PATH (if it exists) or PATH, but that value can be
  525.     overridden by the the command line argument --exec-path PATH, or
  526.     by setting the value of EXEC_PATH in a startup script.  If the
  527.     EXEC_PATH begins (ends) with a colon, the directories
  528.     $OCTAVE_HOME/lib/octave/VERSION/exec/ARCH and $OCTAVE_HOME/bin are
  529.     prepended (appended) to EXEC_PATH (if you don't specify a value
  530.     for EXEC_PATH explicitly, these special directories are prepended
  531.     to your PATH).
  532.  
  533.   * If it is present, Octave will now use an `ls-R' database file to
  534.     speed up recursive path searching.  Octave looks for a file called
  535.     ls-R in the directory specified by the environment variable
  536.     OCTAVE_DB_DIR.  If that is not set but the environment variable
  537.     OCTAVE_HOME is set, Octave looks in $OCTAVE_HOME/lib/octave.
  538.     Otherwise, Octave looks in the directory $datadir/octave (normally
  539.     /usr/local/lib/octave).
  540.  
  541.   * New examples directory.
  542.  
  543.   * There is a new script, mkoctfile, that can be used to create .oct
  544.     files suitable for dynamic linking.
  545.  
  546.   * Many more bug fixes.
  547.  
  548.   * ChangeLogs are now kept in each subdirectory.
  549.  
  550. See NEWS.1 for old news.
  551.